﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum СпособыРаспределенияЗатратНаВыпуск
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"52da9c9d-6b07-434d-b289-893eed508138\", \"Представление\":\"ПоОбъемуВыпускаПродукции\"}")]
		ПоОбъемуВыпускаПродукции = 0,//По объему выпуска продукции
		[EnumMember(Value = "{\"Ссылка\":\"78e98540-8741-48e5-9978-9480d8559d90\", \"Представление\":\"ПоПлановойСтоимостиПродукции\"}")]
		ПоПлановойСтоимостиПродукции = 1,//По плановой стоимости продукции
		[EnumMember(Value = "{\"Ссылка\":\"43347d08-b2ee-4439-909a-ec4d2d73b695\", \"Представление\":\"ПоНормативам\"}")]
		ПоНормативам = 2,//По нормативам
	}
	public static partial class СпособыРаспределенияЗатратНаВыпуск_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПоОбъемуВыпускаПродукции = new Guid("3e8989b2-50ed-3881-434d-6b0752da9c9d");//По объему выпуска продукции
		public static readonly Guid ПоПлановойСтоимостиПродукции = new Guid("80947899-55d8-909d-48e5-874178e98540");//По плановой стоимости продукции
		public static readonly Guid ПоНормативам = new Guid("4dec9a90-732d-95b6-4439-b2ee43347d08");//По нормативам
		public static СпособыРаспределенияЗатратНаВыпуск Получить(this СпособыРаспределенияЗатратНаВыпуск Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыРаспределенияЗатратНаВыпуск Получить(this СпособыРаспределенияЗатратНаВыпуск Значение, Guid Ссылка)
		{
			if(Ссылка == ПоОбъемуВыпускаПродукции)
			{
				return СпособыРаспределенияЗатратНаВыпуск.ПоОбъемуВыпускаПродукции;
			}
			else if(Ссылка == ПоПлановойСтоимостиПродукции)
			{
				return СпособыРаспределенияЗатратНаВыпуск.ПоПлановойСтоимостиПродукции;
			}
			else if(Ссылка == ПоНормативам)
			{
				return СпособыРаспределенияЗатратНаВыпуск.ПоНормативам;
			}
			return СпособыРаспределенияЗатратНаВыпуск.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыРаспределенияЗатратНаВыпуск Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыРаспределенияЗатратНаВыпуск Значение)
		{
			switch (Значение)
			{
				case СпособыРаспределенияЗатратНаВыпуск.ПоОбъемуВыпускаПродукции: return ПоОбъемуВыпускаПродукции;
				case СпособыРаспределенияЗатратНаВыпуск.ПоПлановойСтоимостиПродукции: return ПоПлановойСтоимостиПродукции;
				case СпособыРаспределенияЗатратНаВыпуск.ПоНормативам: return ПоНормативам;
			}
			return Guid.Empty;
		}
	}
}